<?php

namespace App\Models;


class DictConfig extends BaseModel
{
    /**
     * 与模型关联的数据表。
     *
     * @var string
     */
    protected $table = 'dict_config';
    protected $primaryKey = 'id';
    /**
     * 可以被批量赋值的属性。
     *
     * @var array
     */
    protected $fillable = array(
        "name", "keys", "value", "type", "status",
        'remark', 'shop_id', 'users_id'
    );
    /**
     * 执行模型是否自动维护时间戳。
     *
     * @var bool
     */
    public $timestamps = false;
    /**
     * 查询数据需要过滤掉的属性。
     *
     * @var array
     */

    protected $hidden = array(
        'updated_at'
    );

    public function makeTypeValue($type, $value)
    {
        //        值类型:0字符,1数字,2浮点,3数组
        switch ($type) {
            case 1:
                $result = intval($value);
                break;
            case 2:
                $result = floatval($value);
                break;
            case 3:
                $result = json_decode($value, true);
                break;
            default:
                $result = trim($value);
                break;
        }
        return $result;
    }

    //取值
    public function getValue($key)
    {
        $where = [
            'keys' => $key,
            'status' => 0,
        ];
        $row = $this->where($where)->select(['keys', 'type', 'value'])->first();
        $result = '';
        if (empty($row)) {
            return $result;
        }
        return $this->makeTypeValue($row['type'], $row['value']);
    }
}
